package com.ruoyi.ldzlsc.service;

import com.ruoyi.ldzlsc.domain.vo.WorkOrderVO;
import com.ruoyi.ldzlsc.domain.vo.WorkOrderTaskVO;
import com.ruoyi.ldzlsc.domain.ScWorkOrder;
import com.ruoyi.ldzlsc.domain.vo.WorkOrderScheduleInfoVO;

import java.util.List;
import java.util.Map;

/**
 * 工单Service接口
 *
 * @author ruoyi
 * @date 2024-07-31
 */
public interface IScWorkOrderService {
    /**
     * 查询工单列表
     *
     * @param workOrderVO 工单查询条件
     * @return 工单集合
     */
    public List<WorkOrderVO> selectWorkOrderList(WorkOrderVO workOrderVO);
    
    /**
     * 根据工单ID查询工单详情
     *
     * @param workOrderId 工单ID
     * @return 工单信息
     */
    public WorkOrderScheduleInfoVO selectScWorkOrderById(Long workOrderId);
    
    /**
     * 开始工单
     *
     * @param workOrderId 工单ID
     * @param operName 操作人
     * @return 结果
     */
    public int startWorkOrder(Long workOrderId, String operName);
    
    /**
     * 取消工单
     *
     * @param workOrderIds 工单ID集合
     * @param operName 操作人
     * @return 结果
     */
    public int cancelWorkOrder(Long[] workOrderIds, String operName);
    
    /**
     * 结束工单
     *
     * @param workOrderId 工单ID
     * @param operName 操作人
     * @return 结果
     */
    public int finishWorkOrder(Long workOrderId, String operName);
    
    /**
     * 撤回工单
     *
     * @param workOrderId 工单ID
     * @param operName 操作人
     * @return 结果
     */
    public int withdrawWorkOrder(Long workOrderId, String operName);

} 